Systems and methods for sharing information between a user group and associated document

ABSTRACT

Systems and methods of the present invention connect a group of users who are involved in a common project. The information on this project will be stored in an electronic document. Each member of the group has an exact copy of the document and the method of this invention is what ensures that such copies are exact. Each user may incorporate modifications into their copy, which will later be shared by the rest after a synchronization stage. Systems and methods further allow the information to be shared between the various members of the group and which include a series of stages during which it is mainly a question of transferring the modifications from a specific user to the rest of the group, thus avoiding the use of a dedicated client-server structure.

This application is a Divisional of co-pending application Ser. No.11/052,198, filed on Feb. 8, 2005, the entire contents of which arehereby incorporated by reference and for which priority is claimed under35 U.S.C. §120.

BACKGROUND TO THE INVENTION

1. Field of the Invention

Systems and methods consistent with principles of some embodiments ofthe present invention provide for sharing information between a usergroup and an associated document and, more particularly, provide formaking use of a distributed information framework without the need for aproject management server, offering a common document to allparticipants in the project with very low requirements in terms ofcomputer resources

2. Related Art

One of the greatest advances from the use of computers has been theefficient handling of information, thus reducing processing time.Management tool developers tend to look for bottlenecks in proceduresfor collaboration on projects in which a certain number of participantsare involved. These bottlenecks can be eliminated by improvinginteraction between the participants in the project.

One of the frameworks for implementation of a computer solution mostoften used to provide a certain service is the client-server one. Thisframework has some advantages in terms of centralized processing ofinformation and administration of resources; however, the minimumrequirements in physical and computational resources are high. It isessential to have available high-performance and high-availabilitycomputers, qualified personnel to work with such computers and thesoftware required for managing the information.

When a group project is to be carried out, the execution time may besignificantly reduced if the contributions from each of the memberscollaborating on the project are easily available for the rest of thegroup. As electronic mail has provided a major advance in communicationbetween users, this tool has been developed with several solutions,which facilitate group work.

Publication number US2003135565 describes an electronic mailapplication, which allows participants to view a centralized project.This centralized project makes use of a server on which the project iscentralized so that users may view the document in their electronic mailapplication. This application brings together both of the aspectsmentioned, a client-server framework and centralized distribution of theproject.

Publication number WO2001052081 describes an invention consisting of amethod of collaboration between a user group where electronic mails arestored in a database in the form of a web page, with other users beinginformed when the page has been updated by one of the users.

Finally, publication number US2004122898, describes a method forrevising a digital document on a network, which involves recording ofnotes made separately by users. These notes are saved separately fromthe document and logical links are made to the document. This operationof establishing a relationship between the notes and the document isseparate from the program for viewing the document. In this framework,each participant still acts in a centralized manner with a collaborationservice treated as a separate unit.

However, there is a need for a system that does not operating in theconventional client-server environment as demonstrated in the cited art.Systems and methods, consistent with some embodiments of the presentinvention make use of a distributed information framework without theneed for a project management server, offering a common document to allparticipants in the project with very low requirements in terms ofcomputer resources.

SUMMARY OF THE INVENTION

Systems and methods, consistent with some embodiments of the presentinvention, provide for sharing information between a user group, as wellas the document used for carrying out this method.

The method relates a group of users who are involved in a commonproject. The information from this project will be collected in anelectronic document.

Each of the members of the group has an exact copy of the document andit is the method of this invention which ensures that such copies areexact.

The document allows heterogeneous data to be grouped together, such asimages, text, links or sounds, which are organized according to thewishes of the group members.

Each user may incorporate modifications into his copy which will then beshared with the rest after a synchronization stage.

A feature consistent with some embodiments of the present inventionallows for sharing of information between the various members of thegroup and which consists of a series of stages in which it is mainly acase of the modifications made by a specific user being transferred tothe rest of the group.

These modifications are transmitted by a transport protocol, forexample, electronic mail, thus avoiding the use of a specificclient-server structure.

Receipt of the modifications by the rest of the users involves an updateprocess which allows the rest of the copies of the electronic documentin the possession of the remaining users to be updated.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and constitutea part of this specification, illustrate embodiments of the inventionand, together with the description, explain the principles of theinvention. In the drawings:

FIG. 1 depicts an exemplary system environment for implementing featuresconsistent with principles of the present invention;

FIG. 2 depicts an exemplary diagram of the components of a clientcomputer, consistent with some embodiments of the present invention; and

FIG. 3 depicts an exemplary flow diagram of the steps performed by auser to establish a group consistent with some embodiments of thepresent invention.

DETAILED DESCRIPTION

Reference will now be made in detail to the features of the principlesconsistent with some embodiments of the present invention, example ofwhich are illustrated in the accompanying drawings. Wherever possible,the same reference numbers will be used throughout the drawings to referto the same or like parts.

Systems and methods consistent with some embodiments of the presentinvention provide for sharing information within a user group. Thesesystems and methods for sharing information make use of a group ofcomputers connected via a network and operated by users who arecollaborating on a common project.

System Architecture

FIG. 1 is an exemplary diagram of a system environment 100 forimplementing the principles consistent with some embodiments of thepresent invention. The components of system 100 may be implementedthrough any suitable combinations of hardware, software and/or firmware.As shown in FIG. 1, system 100 includes a plurality of client devices102, 104 and network 106. Additional devices may reside on network 106.While network 106 may be implemented as the Internet, network 106 may beany local or wide area network, either public or private. Client devices102, 104 may access each other and other devices through network 106

FIG. 2 depicts an exemplary block diagram of components included inclient devices 102, 104. Client devices 102, 104 may be any type ofcomputing device, such as a personal computer, workstation, personaldigital assistant, cellular telephone, etc., that is capable ofcommunicating, either directly or indirectly, on network 106. Clientdevices 102, 104 may include, for example, transmission agent 202,dispatch agent 204, main information management program 206, centralprocessing unit 208, memory 210, input/output devices 212, andapplication software 214.

Transmission agent 202 may be utilized to read dispatch agentdistributed data in output and to insert data in packets ready to besent to workgroup participants. A packet characteristic may be itssequence number as the sequence number may be useful when receivedpackets are out of the established sequence. In addition to electronicmail, transmission procedures may include, for example, P2P(peer-to-peer) transmission that may speed up delivery time whenparticipants are on-line. Transmission agent may be a program externalto the one that manages the shared document as, for example, anelectronic mail client or an electronic mail program add-in or filesharing P2P program.

Dispatch agent 204 may be utilized to encode/decode data to be shown tothe user. When a user interacts with the shared document, the mainprogram delivers information to dispatch agent which distributes them toall participants. In the same way, when data are received from otherparticipants, dispatch agent decodes and notifies them to the mainprogram which manages the shared document. Dispatch agent may beimplemented as a proprietary program or internal module which managesthe shared document and depicts the interface between the document andthe external transmission agent.

Main information management program 206 may be utilized to manage theshared document by interacting with both the user interface module andthe dispatch agent. Information management program manages therelationships between objects available on the shared document(s) andtheir storage.

Application software 214 may be the program which acts as the userinterface to add and visualize shared documents and to manage the shareddocuments collection by interacting with the information managementprogram 206. Application software 214 may be implemented in astand-alone mode or as a plug-in for any other application such as anelectronic mail client, a browser, an operating system shell, etc.

Definition of the Workgroup

This common project comprises a group of users who may have variousprivileges regarding the information to be handled.

The user who is leading the project is the one who may define both thegroup, inviting users to participate, and the attributes each of themembers will have. This user will be called the administrator.

The first phase of the method may be defining the group. The group andeach user are defined with a unique identifier and, although not only,as will be seen in the examples herein, the electronic mail address maybe the identifier for each user.

Every time a new user is invited to join, he may have the samemanagement resources as the user who is the project administrator aswell as the attributes granted to him by the administrator regardingaccess to the electronic document, which they share. The managementresources are the group of applications, which allow the exchange ofinformation as well as the tools for viewing and editing.

In a large user group, it is possible to define several groups each withtheir own administrator without the need for there to be the same numberor the same individuals making up each group. Each of these groups maybe involved in a different project or electronic document. Also, each ofthe groups will have an administrator who will be the one who hasinvited each of the members of the group to participate in the document.

One of the plurality of devices on the network may be designated as theback up device, wherein a user at the back up device manages a copy ofany document sent by any of the users in the network and controlsmechanisms to restore information that may be eventually lost by theusers.

This shared electronic document may not be unique, nor does it reside ona server but each member of the group has an identical copy. There maybe as many copies as there are members of the group.

Each group member has attributes which allow them to carry out a seriesof actions, i.e., insertion of text, images, sound, modifications todocuments with respect to contents or visual representation mode,inclusion of notes on an object contained in the document, inclusion ofa link between two items, etc.

As an example, the lack of an attribute, such as that of writing, maynot allow this user to modify the contents but he may be able to readit. The attributes policy sets out the actions, which may and may not becarried out by group members.

Once the framework or environment for working has been established, eachmember of the group may act on their copy according to the attributesthey have available. Each of the changes carried out are only made ontheir copy, making it necessary to establish a synchronization method,which allows these contributions or modifications to be shared with therest of the group. After the synchronization stage, the rest of thecopies will incorporate these modifications so that if all userssynchronize their documents, all the copies will be identical.

The Electronic Document

The electronic document is a document provided with homogenous objectswhich allow storage of heterogeneous contents since it admits elementsof different types, such as text, images, sounds, links, notes, etc.,and is thus able to handle them all in one way.

The electronic document includes diverse information and details aregiven below of what is considered essential or indispensable:

Identification of Group. This identification allows a user toparticipate in more than one project while keeping projects orelectronic documents separate. When a new document is created relatingto a project, a new identifier is generated for the document. Thisidentifier can be called GUID (group user identification).Characterization by GUID, both of users as well as objects anddocuments, allows them to be identified as homogeneous elements betweenwhich correlations can be generated.

Correlation is understood as the capacity to generate logic-timerelations between the homogeneous elements mentioned. For example, it ispossible to establish a link between an image and a note on the image,both from the person who inserts this image and another user. The seconduser will maintain time dependence with respect to the comment from thefirst one to be included in the document. Comments are clear examples ofinformation, which should be maintained in chronological order.

List of Users. This list defines the users who make up the group and theattributes each of them has available. The attributes of each of theusers establish the document resources which are accessible ormodifiable by each user. However, there is the possibility of making useof a list of contacts which can process possible new users who may beinvited to join later. This address book should not be confused with thelist of users which corresponds to those who can actually share theelectronic document.

Viewing Structure. Viewing structure refers to the data structure whichincorporates the information on the visual and representational aspectswhich allow the document to be reproduced on any computer by a user sothat it is sure to appear in the same way for all of the users. Examplesof data stored which affects the visual aspects of an item are thecolor, position, shape or inclusion of shading.

Objects. Objects are the entities which the user handles directly byinserting, deleting or modifying. Among these objects are images, textportions, notes specifically linked to other objects, for example, as acomment to an image, videos, sound recordings, etc. Objects are ofdifferent types and constitute the main content of the informationstored which is directly related to the project. Objects haveinformation on the user who created or modified them, as well as thetime when the object was modified. The information management program iscapable of displaying all changes and the authors of these changes.

Objects may be classified into three categories which are notnecessarily mutually exclusive:

Container Objects. Container objects are those which act as containersfor others. For example: a box containing various images with commentson them. A specific case are containers which allow the inclusion ofseveral types of pages.

Non-container Objects. These are objects which cannot act as containersfor other objects. An example is geometric objects such as a rectanglein which it is possible to include text although it does not have texteditor facilities.

Parent Objects and Child Objects. Objects have a parent-childrelationship, in other words, there is a parent object and other childobjects may depend on it. In turn, the child objects may be parentobjects of others which depend on them. An example of a child object isa comment on an image. The parent object is the image and the childobject is the comment.

Storage Space. Each of the electronic documents has a temporary placefor storage. This place for storage may be a folder or directory wherein turn there are one or more files which include information relatingto the document. For example, if the information is stored in XMLmformat, there will be several files used: style file, images, maindocument with mark-ups, etc.

This latter aspect has been left until the end of the list of documentcomponents to allow a description of the method of the invention, whichconsists of ensuring that each user's copy is identical. Thischaracteristic allows the invention not to depend on a specific server.

When a user saves the changes made to his copy of the document from thetemporary storage space to the hardware, not only is this storageupdated but the elements updated are packaged and saved in a spooler ortemporary waiting area for data to be sent. This same user may carry outmore than one save operation which is why at least as many packets asorders issued will be stored in the spooler. To avoid sending largepackets, it is possible that given a single order to save more than onesmall packet is created.

The list of updates, which makes up the group of packets, defines a listwhich may be called the “journal” leading to update of a document fromthe packets generated. From this list, it is possible to determine thetime of incorporation of each modification to the document.

When the user decides to share information or modifications incorporatedinto his copy of the document with the rest of the group, he issues thesynchronization order. The sharing process provides the use of atransmission agent, which is responsible for sending and receiving theinformation. When the user shares his modifications with the rest of themembers of the group, the transmission agent accesses the outputspooler, reads it, encodes the data, compresses it and sends it to thedispatch agent. If, for example, and without excluding otherpossibilities, the dispatch agent is the electronic mail, theinformation is sent by making use of an electronic mail document.Successive shared dispatches may only send the journal with theinformation packets, which merely contain the variations, which theelectronic document has undergone. The rest of the users in the groupreceive the information sent and decode it according to the specificformat of the electronic document belonging to this invention.

Incorporation of the decoded information generates the appropriateresources in the copies of the electronic document which users receiveand allows the copies to be updated to make them the same as theoriginal.

The processes of encoding, compression and/or encryption may not betaken on by the main information management program but by thetransmission agent.

When all the users belonging to the group issue the synchronizationorder and it is executed, all the copies of the electronic documentbecome identical.

Some alternatives are provided to demonstrate how to operate theinvention, establishing at each stage the resources, which will be used,and how they will be implemented.

In one embodiment, a very limited number of requirements are set toimplement the method for sharing information. This method includescombining the use of a plug-in module embedded in an electronic mailclient which allows use to be made of the electronic mail service as anagent for transporting the information, as well as a managementapplication for the document for each user.

FIG. 3 depicts an exemplary flow diagram of the steps taken by anadministrator for establishing a document and a user group consistentwith principles of some embodiments of the present invention. As shownin FIG. 3, the first user or administrator defines a new electronicdocument (Step 302), assigning the necessary resources to it, whichinclude the group name and its identifier, attributes, basic tools to beused (discussion areas, file repositories, images, diagrams withgeometric objects, text areas, or any other, contextual comments, etc.),appearance of background, and others referring to minor aspects ofappearance; and storage space.

It has been stated that each document may have its own directory withthe information relating to the electronic document. It is possible toimplement this solution by defining virtual spaces or directories, whichare physically stored and managed on one file. It operates in the sameway as discussed above and conceptually each project in particular is adocument.

Once a new project has been defined with the creation of an electronicdocument, the context, framework or environment on which users are goingto gradually include the different objects has been discussed. The newdocument may be sent to each of the users in the user group (Step 304)for modification. These objects will be provided by each of the userswho make up the group, which is why the program allows other users to beinvited to join for executing the tasks defined. The administratorcarries out the job of inviting other users to join since he is the onewho can grant the attributes to each of the users, thus allowing ahigher or lower level of intervention and access to data.

Creation of the group takes place so that each of the users who has anelectronic mail address will be incorporated into a list, which definesthe group. The inclusion of each user also involves assignment of theirattributes depending, for example, on their level of responsibility forthe document.

The management application includes all the tools required for handlingobjects which can be inserted in the document, i.e., images, text,comments, links between objects, sound and, for example, files fromspecific external applications which they wish to incorporate as data ofinterest for the project. These external files are elements which areadditional to the electronic document regardless of whether they are inturn opened by the specific application which created them. In this way,the electronic document belonging to this invention is a means ofmanaging and sharing information.

When a user makes a change or addition to the document (Step 306, Yes),each of the changes and incorporations are saved on the local hard disk(Step 308) when the user requires. Each of these save options defines inturn a packet with the additional information, which are sent to theother users in the group and allows the document to be updated with theresources incorporated. This packet is not an update of the previousversion of the document but it has the information on which newresources have to be incorporated or modified. This distinction is dueto the fact that it is not known in advance the order in which thedocument is updated or which packets will intervene since each userdecides alone when to synchronize his document and send hiscontributions to the rest of the group. A user will receive packets fromothers in an order, which is not pre-determined. Each of the packetsshould supply the resources and modifications regardless of the order ofarrival.

When the document is synchronized, all the packets are taken from thespooler and are encoded and transformed into electronic mail documentsby the plug-in to be sent as electronic mails(Step 310). The rest of theusers will have the same plug-in in the electronic mail client so thatafter receiving the packets(Step 312, Yes), it identifies them bydecoding them and, once the sequence of the electronic mail received isestablished by any suitable method, according to the sequence generatedby the sender, sends them to the electronic document manager so that itcan apply the modifications imposed by the packet or packets received(Step 314). This process may be repeated until a document is completed(Step 316). Although a plug-in has been used in this example, one ofordinary skill in the art may appreciate that systems and methodsconsistent with principles of some embodiments of the present inventionmay be reproduced by using a stand-alone program.

While it is true that electronic mail is a service, which makes use of aserver, this cannot be considered as a medium, which defines aclient-server structure in this invention. Electronic mail is merely themethod of transport, which will allow a connection to be made directlybetween users transmitting information.

The advantage of this example of operating the invention lies in thefact that the use of electronic mail is widespread and, therefore, it isa service, which does not have to be incorporated. The possibleexistence of a firewall between two users does not prevent communicationbetween them because the electronic mail service is always available andopen, so it is not necessary to open new ports for a transport agent.

Each of the users may also have a graphic environment available fordisplaying and handling the electronic document, which is merely a toolwhich works on the resources it includes. The presence of informationwhich can be displayed makes it possible for implementations from theinformation manager on different platforms, even in the operating systemon which they are implemented, to lead to the same aspects beingdisplayed. In other words, the visual result of the document isidentical regardless of the operating system and, of course, the methodof transport.

In an alternative embodiment, the stages which are the same as what hasalready been mentioned in the description of the invention and theembodiment discussed above will not be described. The differencesinvolved in its implementation as a work environment integrated into theoperating system will be described.

The embodiment discussed above is mainly based on the use of a group ofapplications at a user level. All the applications and storage resourcesbelong to the user.

In this alternative embodiment, the method is integrated with theoperating system itself since the invention is separate from theimplementation mode.

When the method for sharing information is implemented integrated intothe operating system, a method is obtained which is available for eachuser and it is a service which will be available for each applicationwhich wants to make use of it. In this case, a UNIX type, multi-useroperating system is described, in which the kernel integrates thetransport service. This service is a dedicated service attended by adaemon which is constantly running or listening on a port identified byits own number. This daemon may be single in the exchange of informationwith other machines establishing a point-to-point connection or it maybe double with one responsible for sending and the other responsible forreceiving.

The equivalent in electronic mail would be the SMTP service for sendingand POP for receiving, where the standard ports are different.

In this case, all the computers involved in the group which shares theelectronic document would have this daemon available which is capable ofmaking the connection merely by knowing the IP number, for example. Thelist of users in this case will not contain the electronic mailaddresses but the IP addresses of the computers in the group as well asthe username for the computer in question.

The spooler for sending data is managed by the transport daemon which iswhy it should receive a signal from UNIX for it to wake up and establishthe connections required and exchange the information with the rest ofthe group.

With this outline, each computer will establish a connection with eachof the other computers in the group.

As this service is at kernel level, it is possible that both the spoolerand the different projects may be stored in the system temporary areawith access only by the daemon, or this storage may take place in theuser area.

The management applications which make use of the transport daemon forsynchronization would be executed at user level and would use theservices provided by the operating system as another system resource.

In the case of other operating systems in which no use is made ofdaemons, this function would be implemented for the shell belonging tothe system.

The management programs are either dedicated applications or they may beother applications. An interesting case is the graphic applicationdesktop application. Setting up the desktop as the electronic exchangedocument involves sharing all the resources on a user's computer withthe rest, establishing a single work space or context for allparticipants. In this way, not only is it possible to exchangeinformation between users, but on the desktop itself the possibilitiesof handling information increase. This assertion is due to the fact thatsystem files can be linked with comments, images or any of theoperations already described. All these links and incorporations areshared with the rest of the users.

The desktop is the work environment, which each user can organize,sharing it with the rest of the users. The possibility of using thedifferent desktops simultaneously is extended to the possibility ofsharing different work environments which correspond to the differentprojects being developed which are supported by the exchange ofinformation method.

In this second example, the desktop itself would become the electronicdocument belonging to the invention. It is possible to also consider aspecific case of information management which includes unipersonal usewithout this meaning that it is no longer a method for exchanginginformation as justified below. This desktop would allow the projectinformation to be managed and the synchronization actions would lead toa connection through an alarm daemon with the same computer fordefinitive incorporation of the changes applied to the electronicdocument thus stating, for example, the time when each of the changeswas made. This type of connection with the same computer is usual in aUNIX environment, as happens with the broadest graphic environments.Unipersonal use of the application for the method belonging to thisinvention as specified in this example would not be limited to it, butit has been used to describe a way of carrying out such a projectmanagement strategy.

In an additional alternative embodiment, the use of stored informationby making use of a mark-up language is demonstrated. The most commoncase of documents which use a mark-up language are web pages written inHTML. This language is not the only one, there are also docbook or latexdocuments among the most well-known.

A web page is a document composed of a series of objects defined usingmark-up language, which is displayed using a program known as a browser.Each of the elements making up the web page have a unique identifierrelating to the page or document to which they belong. In this example,the web page may be a part of the document as it is defined consistentwith some embodiments of the present invention, and it is therefore ashared document, so that it is possible to incorporate additionalresources or objects which will be exchanged with the group using any ofthe methods of transport already indicated. These additional resourceswill allow incorporation of a comment, for example, or a text area, agraphic element, or a voice recording.

In this case, the information to be exchanged is very little since allthat is required is to transfer the address of the web page togetherwith the identifier of the object defined through the mark-up languageused by the page and, finally, the new object incorporated.

The application used as a browser may continue to be the one used fordisplaying the web page and the additional elements incorporated may berepresented by the operating system using resources such as thosedescribed in the second example. The additional elements incorporatedinto the web page may have as information for establishing theirdefinition the local coordinates or those relating to the objects onwhich it depends so that they may be moved or managed while maintainingthe dependency established in its representation. This parent-childrelationship is possible as long as the mark-up language admitsidentification of isolated elements.

This example clearly shows the possibility of incorporating resourceswhich construct the document belonging to the invention in a uniquecontext as the environment for collaboration on an interface whichinitially lacked this capacity.

Principles consistent with some embodiments of the present invention arenot altered by variations in materials, form, size and layout of theelements making it up, described in a manner which does not limit them,with this being enough for it to be reproduced by an expert.

1. An electronic document comprising: a group identifier; a list ofusers making up the group; a viewing structure to allow exactreproduction of the document for all users; the group of objectscontained in the document; and storage, wherein the group identifier,the list of users making up the group, the viewing structure, the groupof objects and the storage are all associated with each other and areconfigured to assist in synchronizing a group of objects at an externaldevice.
 2. The electronic document of claim 1, wherein each object inthe group of objects can be configured to be designated as a one of aparent and child to establish a parent-child relationship betweenobjects.
 3. The electronic document of claim 1, wherein the objectsinclude information relating to an addition or modification, the usermaking the addition or modification and the time the addition ormodification was made.
 4. The electronic document of claim 1, whereinthe objections may be container objects.
 5. The electronic document ofclaim 1, wherein the electronic document is based on a mark-up language.6. The electronic document of claim 1, wherein the electronic documentis stored separate from other shared electronic documents.
 7. Theelectronic document of claim 1, wherein the electronic document isstored in a common storage and wherein the electronic document ismanaged by an information manager.